package cn.qhuan.modules.service;

import cn.qhuan.modules.dtos.*;

import cn.qhuan.modules.entity.Works;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;

/**
 * @Description: 作品表
 * @Author: 司翔宇
 * @Date:   2020-12-18
 * @Version: V1.0
 */
public interface IWorksService extends IService<Works> {
    /**
     * 审核通过或者驳回
     * @param dto
     * @param type 1审核通过  2审核不通过
     * @return
     */
    public Result<?> updateStatus(WorksAuthDto dto, Integer type);

    /**
     * 显示不显示
     * @param showDto
     * @param type 0显示 1不显示
     * @return
     */
    public Result<?> updateShowStatus(WorksShowDto showDto, Integer type);

    /**
     * 根据时间显示最新上传数据
     * @param dto
     * @return
     */
    public Result<?> loadNewWorks(WorksTimeDto dto);

    /**
     * 设置作品与展厅的关系
     * @param uuid
     * @param worksId
     * @param exhiId
     * @return
     */
    public Result<?>  addWorksToExhi(String uuid, String worksId, String exhiId);

    /**
     * 设置作品与专题的关系
     * @param uuid
     * @param worksId
     * @param specId
     * @return
     */
    public Result<?>  addWorksToSpec(String uuid, String worksId, String specId);

    /**
     * 设置作品与类别的关系
     * @param uuid
     * @param worksId
     * @param typeId
     * @return
     */
    public Result<?>  addWorksToType(String uuid, String worksId, String typeId);


    /**
     * 设置作品与朝代的关系
     * @param uuid
     * @param worksId
     * @param dynastyId
     * @return
     */
    public Result<?> addWorksToDynasty(String uuid, String worksId, String dynastyId);
    /**
     * 设置作品与艺术家的关系
     * @param uuid
     * @param worksId
     * @param artistId
     * @return
     */
    public Result<?> addWorksToArtist(String uuid, String worksId, String artistId);

    /**
     * 设置作品与标签的关系
     * @param uuid
     * @param worksId
     * @param tagId
     * @return
     */
    public Result<?> addWorksToTg(String uuid, String worksId, String tagId);

    /**
     * 查询所有作品数量
     * @return
     */
    public Result<?> selectWorksCount();


    /**
     * 关键字模糊查询所有
     * @param dto
     * @return
     */
    public Result<?> selectCountByKeyWord(WorksDto dto);


    /**
     * 查询作品详情
     * @param id
     * @return
     */
    public Result<?> findWorksVo(Integer id);
    /**
     * 根据多条件分页查询文章信息
     * @param dto
     * @return
     */
    public Result<?> findList(WorksDto dto);

    /**
     * 上传作品，并设置作品与其对应的关系
     * @param dto
     * @return
     */
    public Result<?> saveWorks(WorksDtoVo dto);

    /**
     * 修改作品
     * @param dto
     * @return
     */
    public Result<?> editWorks(WorksDtoVo dto);
}
